<?php
class CategoryModel extends TaxonomyModel {
    protected $fields=array(
       'id', 'rgt', 'lft', 'level', 'name', 'status', 'jump', 'total',
       '_pk'=>'id',
       '_autoInc'=>true
    );

    protected $_auto=array(
        array('name','trim','ALL','function'),
        array('jump','trim','ALL','function')
    );

    protected $_validate=array(
        array('name','require','栏目名称必须填写',1),
        array('id','/^[1-9]\d*$/','栏目ID不存在')
    );

    /**
     * 检查栏目名称是否已经被使用
     */
    public function checkNameUsed($name,$pid='0'){
        $this->error='栏目名称已经被使用';
        //TODO 写完整
        return false;
    }

    /**
     * 添加栏目
     */
    public function addCategory(){
        $categoryVo=$this->create();
        if(!$categoryVo){
            $this->error='获取栏目信息失败';
            return false;
        }
        //检查父栏目是否存在
        $parentNode=$this->where('id='.$categoryVo['pid'])->find();
        if(!$parentNode){
            $this->error='没有找到父栏目信息';
            return false;
        }
        //检查栏目名称唯一性
        if(false===$this->checkNodeExistedHierarchy($parentNode,$categoryVo)){
            $this->error('栏目名称<b>'.$categoryVo['name'].'</b>');
            return false;
        }
        //保存节点
        $rs=$this->insertNode($parentNode,$categoryVo);
        if(false===$rs){
            $this->error='保存栏目<b>'.$categoryVo['name'].'</b>到数据库时发生了错误';
        }
        return $rs;
    }
}
